package com.hw.one.dam2.dao;

import com.hw.one.dam2.param.CityAirParam;
import com.hw.one.dam2.po.RegionAirQualityPO;

import java.util.List;

/**
 * Copyright 2017 汉威.智慧环保事业部.
 * Created by 李亚坤 on 2017/06/27 11:28.
 *
 * 区域空气质量dao接口
 */
public interface IRegionAirDao {

    /**
     * 根据区域编码列表,和时间,查询区域小时数据
     * @author 李亚坤
     * @createtime 2017年6月27日13:18:45
     * @param cityAirParam
     * @return
     */
    List<RegionAirQualityPO> findRegionRealHourDataByRegionCodes(CityAirParam cityAirParam);

    /**
     * 根据区域编码列表查询区域最新小时数据
     * @author 李亚坤
     * @createtime 2017年6月27日13:18:45
     * @param regionCodeList
     * @return
     */
    List<RegionAirQualityPO> findRegionHourDataByRegionCodes(List<String> regionCodeList);

    /**
     * 根据区域编码列表,和时间,查询区域小时数据
     * @author 李亚坤
     * @createtime 2017年6月27日13:18:45
     * @param cityAirParam
     * @return
     */
    List<RegionAirQualityPO> findRegionHourDataByRegionCodesAndTime(CityAirParam cityAirParam);

    /**
     * 根据区域编码列表和时间查询区域 日数据
     * @author 李亚坤
     * @createtime 2017年6月27日13:18:33
     * @param cityAirParam
     * @return
     */
    List<RegionAirQualityPO> findRegionDayDataByRegionCodesAndTime(CityAirParam cityAirParam);

    /**
     * 根据区域编码列表和时间查询区域 月累计数据
     * @author 李亚坤
     * @createtime 2017年6月27日13:29:49
     * @param cityAirParam
     * @return
     */
    List<RegionAirQualityPO> findRegionMonthDataByRegionCodesAndTime(CityAirParam cityAirParam);

    /**
     * 根据区域编码列表和时间查询区域 年累计数据
     * @author 李亚坤
     * @createtime 2017年6月27日13:32:31
     * @param cityAirParam
     * @return
     */
    List<RegionAirQualityPO> findRegionYearDataByRegionCodesAndTime(CityAirParam cityAirParam);

    /**
     * 根据区域编码和时间查询区域 月数据
     * @param cityAirParam
     * @return
     */
    RegionAirQualityPO findRegionMonthDataByRegionCodeAndTime(CityAirParam cityAirParam);


    /**
     * 根据区域编码列表和时间查询区域 日数据,按时间正序排列
     * @author 李亚坤
     * @createtime 2017年6月28日17:28:29
     * @param cityAirParam
     * @return
     */
    List<RegionAirQualityPO> findRegionDayDataByRegionCodesAndTimeASC(CityAirParam cityAirParam);

    /**
     * 根据区域编码查询区域的最新小时AQI数据
     * @author 李亚坤
     * @createtime 2017年6月29日14:47:44
     * @param regionCode
     * @return
     */
    RegionAirQualityPO findRegionLiveAQIByRegionCode(String regionCode);

    /**
     * 据编码，读取该城市最近12小时的小时数据
     * @author 李亚坤
     * @createtime 2017年6月29日16:39:02
     * @param regionCode
     * @return
     */
    List<RegionAirQualityPO> findRegionHour12DataByRegionCode(String regionCode);

}
